A variety of industrial, commercial and other applications employ PLCs that process signals (e.g., analog and/or digital signals) in order to provide an output signal with selected characteristics. In typical PLC applications, a variety of input and output (I/O) signals, including analog signals, are processed using addressable I/O modules communicatively coupled to a processor. When performing operations using the input signals, it is sometimes necessary to communicate over one or more data busses and/or over one or more of the I/O modules. For instance, input signals received at the PLC are sometimes sent to external devices that process those signals and send output signals back to the PLC.
In some instances, such as monitoring temperature or motion, PLCs are programmed to process signals internally. Such approaches used with PLCs commonly involve performing relatively simple mathematical operations on signals received at an input module. With analog input signals, an analog-to-digital converter (ADC) can be to convert an analog input signal to a digital signal, and the converted digital signal is communicated over a communications link to a microprocessor where the mathematical operations are carried out. These approaches are limited in that the operations are performed after the PLC collects all the pertinent data or in a timeframe that permits the PLC to operate at its relatively slow pace due to access time limitations. For instance, typical input-process-output scan rates of PLCs are less than about 1-2 kHz. Furthermore, more complex operations are typically not carried out by PLCs due to versatility needs (e.g., limitations in the education of the PLC operators and/or due to various performance-based limitations that are inherent to PLCs).
These and other considerations have presented challenges to the implementation of PLCs to more complex applications such as high-speed, real-time digital signal processing and various types of filtering.